import Message from '@/components/library/Message'
// import { useStore } from 'vuex'
// import { useRouter } from 'vue-router'
import store from '@/store'
import router from '@/router'

export default function qqLogin(res, text = '登陆成功') {
  // debugger
  /**
   * useStore() 函数只能用在setup中嘛 ???
   * bug点:  useRoute | useStore | useRouter (它们都属于插件) 必须写在setup中
   * .    强行在自定义函数(qqLogin)使用这些会报undefined. 导致无法使用路由对象和vuex对象
   *  const store = useStore()      // undefined ???
   *  const router = useRouter()    // undefined ???
   * #
   * 解决方式: 直接从引入src目录下的路由对象, 注意直接返回的是路由导航对象
   * import Vrouter from "@/router"
   * // 路由对象
   * const route = Vrouter.currentRoute.value
   * // 路由导航对象
   * const router = Vrouter
   */

  const {
    id,
    avatar,
    nickname,
    account,
    mobile,
    token
  } = res.result

  // 1.存储用户信息
  store.commit('user/setUser', {
    id,
    avatar,
    nickname,
    account,
    mobile,
    token
  })

  // 合并购物车之后再执行页面跳转
  store.dispatch('cart/mergeCart')
    .then(() => {
      // 2.跳转到来源页或则首页
      router.push(store.state.user.redirectUrl)
      // 3.成功消息提示
      Message({
        type: 'success',
        text: text
      })
    })
}

